###############################################################
# Clase User
# representa un usuario y su contraseña
###############################################################

require 'base64'

#puts Base64::encode64("Aladdin:open sesame")
#puts Base64::decode64("QWxhZGRpbjpvcGVuIHNlc2FtZQ==")

class User

	def initialize()
		@name = ""
		@psw = ""
	end
	
	def initialize(*args)
		if args.size == 1
			@name,@psw = Base64::decode64("#{args[0]}").split(":",2)
			@name = @name.strip
			@psw = @psw.strip
		elsif args.size == 2
			@name = args[0].strip
			@psw = args[1].strip
		else
			@name = ""
			@psw = ""
		end
	end
	
	#------------------------------------------------------
	# atributos reader y writer para los datos de instancia
	#------------------------------------------------------
	attr_reader :name, :psw
	attr_writer :name, :psw
	
	#------------------------------------------------------
	# revisa si temp contiene a este usuario y contraseña
	#------------------------------------------------------
	def isUserAndPsw(temp)
		#temp = QWxhZGRpbjpvcGVuIHNlc2FtZQ==
		#puts "#{@name}:#{@psw} - #{Base64::encode64("#{@name}:#{@psw}")} - #{temp}"
		if Base64::encode64("#{@name}:#{@psw}").strip == temp.strip
			return true
		else
			return false
		end
	end

	#------------------------------------------------------
	# revisa si temp contien al usuario (no revisa contraseña)
	#------------------------------------------------------
	def isUser(temp)
		#puts Base64::decode64("QWxhZGRpbjpvcGVuIHNlc2FtZQ==") = "Aladdin:open sesame"
		if @name == Base64::decode64("#{temp}").split(":")[0]
			return true
		else
			return false
		end
	end
	
	#------------------------------------------------------
	# imprimir al usuario
	#------------------------------------------------------
	def print()
		return "#{@name}: #{@psw}"
	end
	
	#------------------------------------------------------
	# get_encode
	#------------------------------------------------------
	def get_encode()
		return Base64::encode64("#{@name}:#{@psw}").strip
	end
	
end
